<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>原型</title>
</head>
<body>
    
</body>
<script>
    /*
        创建对象的方式
    */
    var obj = {  // 字面量形式
        name:'zs',
        age:14,
        say:function(){
            alert(obj.name)
        }
    }
    console.log(obj.name)
    
    // new 关键字
    var myObj = new Object();
    myObj.color = 'yellow';
    myObj.height = 180;
    console.log(myObj);

    // 构造函数
    function Person(name,age){
        console.log('构造函数中的this');
        console.log(this);
        this.name = name;  // 实例成员，构造函数内部通过this添加的
        this.age = age;
        this.sing = function(){
            // console.log(this);
            console.log('我要去桂林')
        }
    }
    // 静态成员：构造函数本身上创建的成员
    Person.wife = '马蓉';

    console.log('---------原型-----------');

    // 原型，prototype，共享属性和方法，不变的内容定义在原型上
    Person.prototype.feature = function(){
        console.log('原型中的this');
        console.log(this);
        console.log('双腿直立行走')
    }
    // Person.prototype.bg = 'black';






    var p = new Person('lzx',45);  // 实例对象
    var p2 = new Person('hxm',42);
    // p.bg = 'yellow';

    p.feature();
    p2.feature();

    // 实例成员只能通过实例对象访问
    p.sing();
    console.log(p.wife); //undefined
    // 静态成员只能通过构造函数访问
    console.log(Person.wife);
    console.log(p.bg);
    console.log(Person.prototype);


    console.log(Object.prototype);



    
    
































</script>
</html>